﻿using System;
using System.Collections.Generic;
using EXT;
using System.Linq;
using System.Windows.Forms;
using BanHangCshap.Class.gkhtdl63.DAL.Entities;
using BanHangCshap.Class.gkhtdl63.BLL;
using System.Drawing;

namespace BanHangCshap.DanhMuc.gkhtdl63
{
    public partial class frmLoaiBoSanphamChitiet : Form
    {
        bool xgThemSua;
        LoaiBoSanpham xgLBSP;
        string xgMacu = "";
        LoaiBoSanphamBLL xgLoaiBoSanphamBLL = new LoaiBoSanphamBLL();
        public event MyEvent_LoadData ETailai = null;


        public frmLoaiBoSanphamChitiet(bool xlThemSua, Class.gkhtdl63.DAL.Entities.LoaiBoSanpham xlLBSP)
        {
            this.xgThemSua = xlThemSua;
            this.xgLBSP = xlLBSP;
            InitializeComponent();
        }

        /// <summary>
        /// Kiểm tra các ràn buộc dữ liệu nhập vào trước khi lưu
        /// </summary>
        /// <returns>True cho lưu, False Có lỗi</returns>
        private bool KiemtraTruockhiLuu()
        {
            if (txtMa.Text.Trim()=="")
            {
                UltitityStatic.thongBaoLoi("Chưa nhập mã");
                txtMa.Focus();
                return false;
            }
            if (xgLoaiBoSanphamBLL.LoaiBoSanpham_KiemtraTontai(txtMa.EditValue.ToString()) && txtMa.EditValue.ToString()!=xgMacu)
            {
                UltitityStatic.thongBaoLoi("Mã điều kiện bảo hành đã tồn tại!\n\nVui lòng nhập mã khác");
                txtMa.Focus();
                return false;
            }
            if (txtTen.Text.Trim()=="")
            {
                UltitityStatic.thongBaoLoi("Chưa nhập tên điều kiện bảo hành");
                txtTen.Focus();
                return false;
            }
            if (txtMota.Text.Trim() == "")
            {
                UltitityStatic.thongBaoLoi("Chưa nhập mô tả cho điều kiện bảo hành");
                txtMota.Focus();
                return false;
            }
            return true;
        }

        /// <summary>
        /// Xóa trống các giá trị của các control
        /// </summary>
        private void DatlaiGiatri()
        {
            txtMa.EditValue = null;
            txtTen.EditValue = null;
            txtMota.EditValue = null;
            txtGhichu.EditValue = null;
            txtMa.Focus();
        }

        /// <summary>
        /// Gán giá trị ban đầu cho các control
        /// </summary>
        private void GangiatriControl()
        {
            txtMa.EditValue = xgLBSP.Ma;
            xgMacu = xgLBSP.Ma;
            txtTen.EditValue = xgLBSP.Ten;
            txtMota.EditValue = xgLBSP.Mota;
            txtGhichu.EditValue = xgLBSP.Ghichu;
            txtMa.Focus();
        }

        private void frmLoaiBoSanphamChitiet_Load(object sender, EventArgs e)
        {
            if (xgThemSua)
            {
                DatlaiGiatri();
            }
            else GangiatriControl(); 
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (!KiemtraTruockhiLuu()) return;
            xgLBSP.Ma = txtMa.EditValue.ToString().ToUpper();
            xgLBSP.Ten = txtTen.EditValue.ToString().ToUpperFirst();
            xgLBSP.Mota = txtMota.EditValue.ToString().ToUpperFirst();
            if (txtGhichu.EditValue != null)
            {
                xgLBSP.Ghichu = txtGhichu.EditValue.ToString().ToUpperFirst();
            }

            if (xgThemSua)
            {
                if (xgLoaiBoSanphamBLL.LoaiBoSanpham_Them(xgLBSP))
                {
                    if (ETailai != null)
                    {
                        ETailai(this, new ELoadData() { IsLoadData = true });
                    }
                    DatlaiGiatri();
                }
                else UltitityStatic.thongBaoLoi("Không thể thêm, kiểm tra kết nối đến CSDL");
            }
            else
            {
                if (xgLoaiBoSanphamBLL.LoaiBoSanpham_Capnhat(xgMacu,xgLBSP))
                {
                    if (ETailai != null)
                    {
                        ETailai(this, new ELoadData() { IsLoadData = true });
                    }
                    this.Close();
                }
                else UltitityStatic.thongBaoLoi("Không thể thêm, kiểm tra kết nối đến CSDL");
            }
        }

        private void pal1_Resize(object sender, EventArgs e)
        {
            int x = (int)((pal1.Size.Width - pal2.Size.Width) / 2);
            int y = (int)((pal1.Size.Height - pal2.Size.Height) / 2);
            pal2.Location = new Point(x, y);
        }
    }
}
